<?php
namespace EventDispatchers\Subscribers;

use EventDispatcher\Events\DemoEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
 * Class DemoSubscriber
 * @package EventDispatchers\Subscribers
 */
class DemoSubscriber implements EventSubscriberInterface
{

	public function onDemoEvent(DemoEvent $event)
	{
		echo "DemoListener is called!\n";
		echo "The value of the foo is :".$event->getFoo()."\n";
	}

	/**
	 * Returns an array of event names this subscriber wants to listen to.
	 *
	 * The array keys are event names and the value can be:
	 *
	 *  * The method name to call (priority defaults to 0)
	 *  * An array composed of the method name to call and the priority
	 *  * An array of arrays composed of the method names to call and respective
	 *    priorities, or 0 if unset
	 *
	 * For instance:
	 *
	 *  * ['eventName' => 'methodName']
	 *  * ['eventName' => ['methodName', $priority]]
	 *  * ['eventName' => [['methodName1', $priority], ['methodName2']]]
	 *
	 * @return array The event names to listen to
	 */
	public static function getSubscribedEvents()
	{
		return [
			DemoEvent::NAME => 'onDemoEvent'
		];
	}
}
